Skip to content

Conversation

@jimmyjon711
Copy link
Contributor

@jimmyjon711 jimmyjon711 commented Nov 28, 2025

Overview of changes

AFC-Klipper-Add-On Card was originally done in mainsail by(@meteyou and @Wondro), this is a port over from mainsail to fluidd.

Features added:

  • AFC Card to easily interact with AFC plugin without using manual macros and shows current status/errors of lanes.
  • Added new column to Spoolman interface to show spools that are loaded in lanes
  • Added toolchange count to status tab when printing, only shows up if total number of toolchanges is greater than 0
  • If user is not using Spoolman, a color dialog box is poped up instead to allow user to manually set color, weight and material.
  • Integrates TD-1 scanned TD and color per lane

All changes have been in testing with multiple users in Armored Turtle discord.

Signed-off-by: Jim Madill [email protected]

Artifacts:

video1.mp4

Settings popup window:

video1.mp4

Error message dialog:

error_messages.mp4

Spoolman popup:

spoolman.mp4

TD-1 Integration:

td1_integration.mp4

Manual color, material, weight selection:

manual_selection.mp4

Toolchange in status tab:

toolchange1

Signed-off-by: Jim Madill <[email protected]>
Signed-off-by: Jim Madill <[email protected]>
…ane, support AFC integration

Signed-off-by: Jim Madill <[email protected]>
…board selection if MMU software is not installed

Signed-off-by: Jim Madill <[email protected]>
- Removing .i18nignore files that was not needed

Signed-off-by: Jim Madill <[email protected]>
@pedrolamas pedrolamas added the FR - Enhancement New feature or request label Nov 30, 2025
@pedrolamas pedrolamas added this to the 1.35.2 milestone Nov 30, 2025
@pedrolamas
Copy link
Member

Hi @jimmyjon711, thank you for sending this Pull Request.

I haven't reviewed it yet but I will try to do it over the next couple of days.

Thank you for adding the indications regarding the attribution of the original code!

Right now, my only worry is in terms of future updates on the AFC module and the support we will be providing on Fluidd side to bring those in...

@jimmyjon711
Copy link
Contributor Author

Hi @jimmyjon711, thank you for sending this Pull Request.

I haven't reviewed it yet but I will try to do it over the next couple of days.

Thank you for adding the indications regarding the attribution of the original code!

Right now, my only worry is in terms of future updates on the AFC module and the support we will be providing on Fluidd side to bring those in...

@pedrolamas First off thanks for taking the time to review this. To your question about support, I am one of the main developers for AFC, so we intend to keep help supporting the AFC integration for both fluidd and mainsail, from adding new features to the web interfaces if we add new features that think could be useful to users in or if we push out a breaking change( we intend on trying to keep everything backwards compatible though).

@pedrolamas
Copy link
Member

@jimmyjon711, that is perfect, indeed that makes things a lot easier then!

Thank you for confirming that, I will get on top of this right now! 🙂

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 47 out of 47 changed files in this pull request and generated 6 comments.

}
.status-label {
width: 100px
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing semicolon after width value. Should be width: 100px; for consistency with coding style.

Suggested change
width: 100px
width: 100px;

Copilot uses AI. Check for mistakes.
value: 'last_used',
cellClass: 'text-no-wrap'
},
}
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trailing comma removed from the last element in the headers array. This is inconsistent with the project's style where trailing commas are typically used for easier diff management when adding new items.

Suggested change
}
},

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore.

Comment on lines 29 to 36
.reduce((loadedSpools, laneName) => {
const lane = this.getAfcLaneObject(laneName)

if (lane?.spool_id) {
loadedSpools[lane.spool_id] = lane.name
}

return loadedSpools
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Variable loadedSpools is shadowing the parameter name in the reduce function. Consider renaming the parameter (e.g., acc or result) to avoid confusion.

Suggested change
.reduce((loadedSpools, laneName) => {
const lane = this.getAfcLaneObject(laneName)
if (lane?.spool_id) {
loadedSpools[lane.spool_id] = lane.name
}
return loadedSpools
.reduce((acc, laneName) => {
const lane = this.getAfcLaneObject(laneName)
if (lane?.spool_id) {
acc[lane.spool_id] = lane.name
}
return acc

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore.

}
// Only send gcode once selection is closed
if (!newDialog.show && newDialog.selectedSpoolId !== this.spoolId) {
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Variable gcode is declared but the constructed value is never used. The gcode variable is built with ternary logic but is only sent via sendGcode() when the dialog closes and conditions are met. If newDialog.selectedSpoolId is null, an incomplete gcode command SET_SPOOL_ID LANE=${this.name} SPOOL_ID= will be sent.

Suggested change
if (!newDialog.show && newDialog.selectedSpoolId !== this.spoolId) {
if (!newDialog.show && newDialog.selectedSpoolId != null && newDialog.selectedSpoolId !== this.spoolId) {

Copilot uses AI. Check for mistakes.
showFilamentName: false,
showLaneInfinite: true,
showUnitIcons: true,
showTd1Color: true,
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing semicolon at end of statement. All other properties in this config object end with a semicolon.

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 46 out of 46 changed files in this pull request and generated 4 comments.

const mdiFilamentDown = 'M12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732l-.125.168a10 10 0 0 0-.541.826l-.035.065a10 10 0 0 0-.87 1.957 10 10 0 0 0-.314 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12a10 10 0 0 0 .053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .869 1.957l.035.065a10 10 0 0 0 .541.826l.125.168a10 10 0 0 0 .598.732 10 10 0 0 0 .98.938 10 10 0 0 0 .754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12a10 10 0 0 0-.031-.756l-.002-.012a10 10 0 0 0-.113-.921 10 10 0 0 0-.313-1.301 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-.6-.92 10 10 0 0 0-.697-.848 10 10 0 0 0-.968-.921 10 10 0 0 0-.752-.567 10 10 0 0 0-1.309-.756h-.002a10 10 0 0 0-.865-.367 10 10 0 0 0-1.285-.379h-.002a10 10 0 0 0-1.035-.174l-.079-.01A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25zM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7zm2.598 0 .865.5v1l-.865.5-.866-.5V7zm2.597 0 .866.5v1l-.866.5-.865-.5V7zM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1zM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25zm-1.3 2.25.866.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.598 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002zm1.866.424A4 4 0 0 0 12 16a4 4 0 0 0 .732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1zM18 16v4h-2l3 3 3-3h-2v-4zm-9.896 1.75.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z'
const mdiFilamentUp = 'M12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732l-.125.168a10 10 0 0 0-.541.826l-.035.065a10 10 0 0 0-.87 1.957 10 10 0 0 0-.314 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12a10 10 0 0 0 .053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .869 1.957l.035.065a10 10 0 0 0 .541.826l.125.168a10 10 0 0 0 .598.732 10 10 0 0 0 .98.938 10 10 0 0 0 .754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12a10 10 0 0 0-.031-.756l-.002-.012a10 10 0 0 0-.113-.921 10 10 0 0 0-.313-1.301 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-.6-.92 10 10 0 0 0-.697-.848 10 10 0 0 0-.968-.921 10 10 0 0 0-.752-.567 10 10 0 0 0-1.309-.756h-.002a10 10 0 0 0-.865-.367 10 10 0 0 0-1.285-.379h-.002a10 10 0 0 0-1.035-.174l-.079-.01A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25zM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7zm2.598 0 .865.5v1l-.865.5-.866-.5V7zm2.597 0 .866.5v1l-.866.5-.865-.5V7zM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1zM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25zM19 15l-3 3h2v4h2v-4h2zm-12.195.5.865.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.597 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002zm1.866.424A4 4 0 0 0 12 16a4 4 0 0 0 .732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1zM8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z'
const mdiFilamentChange = 'm23.5 18.5-3-3v2h-4v2h4v2zm-9 0 3 3v-2h4v-2h-4v-2zM12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732 10 10 0 0 0-1.57 3.016 10 10 0 0 0-.315 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12q.012.372.053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .904 2.022 10 10 0 0 0 .666.994 10 10 0 0 0 .598.732 10 10 0 0 0 .98.938q.364.3.754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12q0-.378-.031-.756l-.002-.012a10 10 0 0 0-.426-2.222 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-2.265-2.69 10 10 0 0 0-2.06-1.322h-.003a10 10 0 0 0-2.15-.746h-.002a10 10 0 0 0-1.114-.183A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154Zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7Zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25ZM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7Zm2.598 0 .865.5v1l-.865.5-.866-.5V7Zm2.597 0 .866.5v1l-.866.5-.865-.5V7ZM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25Zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922Zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1ZM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25Zm-1.3 2.25.866.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.598 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002Zm1.866.424A4 4 0 0 0 12 16q.37-.004.732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1ZM8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172Zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z'
const mdiFileImageLock = 'M6 2c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h6v-2H6l6-6 1.21 1.21C13.377 12.674 15.688 11 18 11c.7 0 1.4.2 2 .4V8l-6-6zm7 1.5L18.5 9H13zM8 9a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m10 4c-1.4 0-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3v-1.5c0-1.4-1.4-2.5-2.8-2.5m0 1.2c.8 0 1.5.5 1.5 1.3V17h-3v-1.5c0-.8.7-1.3 1.5-1.3'
Copy link

Copilot AI Dec 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed blank line between constant definitions. While this change reduces whitespace, the project appears to use blank lines to separate different icon constant definitions throughout the file. Consider maintaining consistency with the existing pattern.

Suggested change
const mdiFileImageLock = 'M6 2c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h6v-2H6l6-6 1.21 1.21C13.377 12.674 15.688 11 18 11c.7 0 1.4.2 2 .4V8l-6-6zm7 1.5L18.5 9H13zM8 9a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m10 4c-1.4 0-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3v-1.5c0-1.4-1.4-2.5-2.8-2.5m0 1.2c.8 0 1.5.5 1.5 1.3V17h-3v-1.5c0-.8.7-1.3 1.5-1.3'
const mdiFileImageLock = 'M6 2c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h6v-2H6l6-6 1.21 1.21C13.377 12.674 15.688 11 18 11c.7 0 1.4.2 2 .4V8l-6-6zm7 1.5L18.5 9H13zM8 9a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m10 4c-1.4 0-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3v-1.5c0-1.4-1.4-2.5-2.8-2.5m0 1.2c.8 0 1.5.5 1.5 1.3V17h-3v-1.5c0-.8.7-1.3 1.5-1.3'

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 47 out of 47 changed files in this pull request and generated 3 comments.

const mdiFilamentUp = 'M12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732l-.125.168a10 10 0 0 0-.541.826l-.035.065a10 10 0 0 0-.87 1.957 10 10 0 0 0-.314 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12a10 10 0 0 0 .053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .869 1.957l.035.065a10 10 0 0 0 .541.826l.125.168a10 10 0 0 0 .598.732 10 10 0 0 0 .98.938 10 10 0 0 0 .754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12a10 10 0 0 0-.031-.756l-.002-.012a10 10 0 0 0-.113-.921 10 10 0 0 0-.313-1.301 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-.6-.92 10 10 0 0 0-.697-.848 10 10 0 0 0-.968-.921 10 10 0 0 0-.752-.567 10 10 0 0 0-1.309-.756h-.002a10 10 0 0 0-.865-.367 10 10 0 0 0-1.285-.379h-.002a10 10 0 0 0-1.035-.174l-.079-.01A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25zM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7zm2.598 0 .865.5v1l-.865.5-.866-.5V7zm2.597 0 .866.5v1l-.866.5-.865-.5V7zM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1zM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25zM19 15l-3 3h2v4h2v-4h2zm-12.195.5.865.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.597 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002zm1.866.424A4 4 0 0 0 12 16a4 4 0 0 0 .732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1zM8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z'
const mdiFilamentChange = 'm23.5 18.5-3-3v2h-4v2h4v2zm-9 0 3 3v-2h4v-2h-4v-2zM12 2a10 10 0 0 0-1.129.08 10 10 0 0 0-1.02.18 10 10 0 0 0-1.314.386A10 10 0 0 0 7.672 3H7.67a10 10 0 0 0-1.295.752 10 10 0 0 0-.754.564 10 10 0 0 0-.98.938 10 10 0 0 0-.598.732 10 10 0 0 0-1.57 3.016 10 10 0 0 0-.315 1.314 10 10 0 0 0-.105.932v.008A10 10 0 0 0 2 12q.012.372.053.742v.006a10 10 0 0 0 .105.936 10 10 0 0 0 .315 1.314 10 10 0 0 0 .904 2.022 10 10 0 0 0 .666.994 10 10 0 0 0 .598.732 10 10 0 0 0 .98.938q.364.3.754.564A10 10 0 0 0 7.67 21h.002a10 10 0 0 0 .865.354 10 10 0 0 0 1.315.386 10 10 0 0 0 1.02.18A10 10 0 0 0 12 22a10 10 0 0 0 1.129-.08 10 10 0 0 0 .59-.104 6 6 0 0 1-.676-2.214l-.61-.352v-1l.434-.25.258-.148a6 6 0 0 1 .607-1.692V16l.127-.074a6 6 0 0 1 1.342-1.559 4 4 0 0 0 .563-1.04l.132-.077.56.322A6 6 0 0 1 19 13a6 6 0 0 1 2.834.713l.008-.03a10 10 0 0 0 .105-.931v-.008A10 10 0 0 0 22 12q0-.378-.031-.756l-.002-.012a10 10 0 0 0-.426-2.222 10 10 0 0 0-.38-1.014l-.007-.014-.008-.013a10 10 0 0 0-.488-.967L20.656 7a10 10 0 0 0-2.265-2.69 10 10 0 0 0-2.06-1.322h-.003a10 10 0 0 0-2.15-.746h-.002a10 10 0 0 0-1.114-.183A10 10 0 0 0 12 2m-1.299 2.25.432.25.433.25v1l-.865.5-.433-.25-.432-.25v-1l.268-.154Zm2.598 0 .865.5v1l-.865.5-.865-.5v-1zm1.883.414a8 8 0 0 1 1.58.91v.176l-.658.38-.208.12-.865-.5v-1zm-6.342.012.129.074v1L8.537 6l-.433.25-.866-.5v-.172a8 8 0 0 1 1.602-.902M6.805 6.5l.865.5v1l-.865.5-.104-.06L5.94 8V7Zm2.597 0 .866.5v1l-.434.25-.432.25-.431-.25L8.537 8V7l.432-.25ZM12 6.5l.865.5v1l-.12.07A4 4 0 0 0 12 8a4 4 0 0 0-.732.076L11.135 8V7Zm2.598 0 .865.5v1l-.865.5-.866-.5V7Zm2.597 0 .866.5v1l-.866.5-.865-.5V7ZM5.505 8.75l.866.5v1l-.865.5-.865-.5v-1zm2.599 0 .865.5v.14a4 4 0 0 0-.733 1.284l-.132.076-.866-.5v-1zm7.792 0 .866.5v1l-.866.5-.12-.07a4 4 0 0 0-.745-1.287V9.25Zm2.598 0 .865.5v1l-.865.5-.207-.12-.658-.38v-1zM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m-7.793 1 .865.5v1l-.865.5-.135-.078A8 8 0 0 1 4 12a8 8 0 0 1 .072-.922Zm2.598 0 .865.5v1l-.865.5-.104-.06-.762-.44v-1l.762-.44zm10.39 0 .866.5v1l-.866.5-.431-.25-.434-.25v-1zm2.598 0 .154.09A8 8 0 0 1 20 12a8 8 0 0 1-.072.922l-.135.078-.865-.5v-1ZM5.506 13.25l.865.5v1l-.865.5-.865-.5v-1zm2.598 0 .132.076a4 4 0 0 0 .733 1.283v.141l-.432.25-.433.25-.866-.5v-1l.434-.25Zm-1.3 2.25.866.5v1l-.865.5-.104-.06L5.94 17v-1l.762-.44zm2.598 0 .432.25.434.25v1l-.434.25-.432.25-.431-.25-.434-.25v-1l.432-.25h.002Zm1.866.424A4 4 0 0 0 12 16q.37-.004.732-.076l.133.076v1l-.761.44-.104.06-.865-.5v-1ZM8.104 17.75l.865.5v1l-.13.074a8 8 0 0 1-1.6-.902v-.172Zm2.597 0 .865.5v1l-.865.5-.865-.5v-1z'
const mdiFileImageLock = 'M6 2c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h6v-2H6l6-6 1.21 1.21C13.377 12.674 15.688 11 18 11c.7 0 1.4.2 2 .4V8l-6-6zm7 1.5L18.5 9H13zM8 9a2 2 0 0 1 2 2 2 2 0 0 1-2 2 2 2 0 0 1-2-2 2 2 0 0 1 2-2m10 4c-1.4 0-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3v-1.5c0-1.4-1.4-2.5-2.8-2.5m0 1.2c.8 0 1.5.5 1.5 1.3V17h-3v-1.5c0-.8.7-1.3 1.5-1.3'
const mdiFileDocumentLock = 'M12 21.7V18H6v-2h6.9l.3-.3v-.2q0-.75.3-1.5H6v-2h9.1c.8-.6 1.8-1 2.9-1 .7 0 1.4.2 2 .4V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h6zm1-18.2L18.5 9H13ZM20.8 17v-1.5c0-1.4-1.4-2.5-2.8-2.5s-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3m-1.3 0h-3v-1.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3z'
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The empty line at 216 creates inconsistency with the file structure. According to the ESLint rules in the codebase, there should be consistent spacing between constant definitions.

Suggested change
const mdiFileDocumentLock = 'M12 21.7V18H6v-2h6.9l.3-.3v-.2q0-.75.3-1.5H6v-2h9.1c.8-.6 1.8-1 2.9-1 .7 0 1.4.2 2 .4V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h6zm1-18.2L18.5 9H13ZM20.8 17v-1.5c0-1.4-1.4-2.5-2.8-2.5s-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3m-1.3 0h-3v-1.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3z'
const mdiFileDocumentLock = 'M12 21.7V18H6v-2h6.9l.3-.3v-.2q0-.75.3-1.5H6v-2h9.1c.8-.6 1.8-1 2.9-1 .7 0 1.4.2 2 .4V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h6zm1-18.2L18.5 9H13ZM20.8 17v-1.5c0-1.4-1.4-2.5-2.8-2.5s-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3m-1.3 0h-3v-1.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3z'
const mdiFileDocumentLock = 'M12 21.7V18H6v-2h6.9l.3-.3v-.2q0-.75.3-1.5H6v-2h9.1c.8-.6 1.8-1 2.9-1 .7 0 1.4.2 2 .4V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h6zm1-18.2L18.5 9H13ZM20.8 17v-1.5c0-1.4-1.4-2.5-2.8-2.5s-2.8 1.1-2.8 2.5V17c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3m-1.3 0h-3v-1.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3z'

Copilot uses AI. Check for mistakes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore.

@pedrolamas pedrolamas merged commit be6c219 into fluidd-core:develop Dec 8, 2025
4 checks passed
@jimmyjon711 jimmyjon711 deleted the AFC_integration branch December 9, 2025 00:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FR - Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants